Many prior art computer systems are typically configured at a minimum with a processor, a random access memory device, and a read only memory device. Some systems, such as a variety of calculators, may operate with only a processor and a read only memory device. Read only memory devices (ROM) provide a non-volatile form of memory that is not destroyed when power is removed from the computer system.
Prior art computer systems are typically bootstrapped (i.e. power up initialized) using the processing logic (i.e. firmware) stored within the read only memory device internal to the computer system. Since the read only memory device is non-volatile, the firmware within ROM is guaranteed to contain valid data or instructions; thus, the prior art computer system can be reliably bootstrapped using firmware within ROM. Many computer systems have successfully used this technique. One such system is the IBM Personal Computer (PC) developed by the IBM Corporation of Armonk, New York. Prior art versions of the IBM PC use read only memory devices for storage of firmware or a basic input/output system (BIOS) software program. The BIOS is operating system processing logic that provides the lowest level of software control over the hardware and resources of the computer system. ROM storage may also be used for non-volatile retention of network configuration data or application specific data. ROM devices in the prior art include basic read only memory devices (ROM), programmable read only memory devices (PROM), and eraseable programmable read only memory devices (EPROM).
Although ROM based computer systems have been very successful in the prior art, a number of problems exist with the use of these devices in a computer system. Read only memory devices must be programmed with a BIOS and/or data prior to being placed into the system during production and assembly of the computer system. Often the BIOS ROM is installed on a system circuit board within the computer housing. In order to replace, modify, or update firmware in a ROM based computer system, the computer housing must be removed and ROM devices on a system circuit board internal to the computer system must be disconnected and replaced or reprogrammed. This invasive ROM replacement and reprogramming procedure is disadvantageous for a number of reasons. First, the ROM replacement operation typically must be performed manually by qualified field service or computer repair personnel; thus, the operation tends to be expensive and time consuming. Secondly, even qualified technical service personnel may introduce problems during the ROM replace operation. If solder connections are necessary, existing connections may be damaged or weakened in the process. Also, electrostatic discharge may inadvertently cause damage to other components on the circuit board during the ROM replace operation. Thirdly, ROM based computer systems are not easily customized for specific applications. Such customization includes modifications for operation in non-English speaking countries. In order to customize a computer system by storing language-specific data in non-volatile memory, a user must program and install a read only memory device on a circuit board in the computer system. Because of the inconvenient ROM installation procedure in the prior art, a user is unable or less likely to customize his/her computer system.
Thus a better means for storing and updating non-volatile code and/or data in a computer system is needed.